package com.toe.user.service;

import com.toe.common.restful.JsonPage;
import com.toe.pojo.dto.user.UserCodeDTO;
import com.toe.pojo.dto.user.UserDTO;
import com.toe.pojo.dto.user.UserPasswordDTO;
import com.toe.pojo.entity.user.UserUsertbl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.toe.pojo.vo.user.UserUserVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author 陶涛
 * @since 2022-07-19
 */
public interface UserUsertblService extends IService<UserUsertbl> {
    String CODE_KEY="code:item:";

    /*查询所有的用户id*/
    List<Long> listAllUserId();

    // 分页查询用户列表 --李迎源用
    JsonPage<UserUserVO> getUserListByPage(Integer pageNum, Integer sizeNum);

    // 根据id删除用户
    void removeUserById(Long id);

    // 修改is_enable字段进行封号
    void forbidUserById(Long id);

    // 根据id恢复解封
    void recoverUserById(Long id);

    //注册
    void reg(UserDTO user);

    //发送验证码并存入redis中
    String sentCode(String phone);

    /**
     * 验证验证码
     * @param codeDTO
     * @return 验证结果
     */
    Boolean check(UserCodeDTO codeDTO);


    /**
     * 获取用户信息
     * @return 返回用户信息
     */
    UserUserVO getUserDetail();

    /**
     * 修改用户信息
     * @return
     */
    boolean updateUserDetail(UserDTO userDTO);

    /**
     * 上传头像
     */
    String updateAvatar(MultipartFile avatar) throws IOException;

    /**
     * 修改密码
     */
    void updatePassword(UserPasswordDTO passwordDTO);
}
